<!DOCTYPE html>
<html class="no-js">
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1" charset="UTF-8">
    <title>sourceDeclaration</title>
    <link href="../../../images/logo-icon.svg" rel="icon" type="image/svg">
    <script>var pathToRoot = "../../../";</script>
    <script>document.documentElement.classList.replace("no-js","js");</script>
    <script>const storage = localStorage.getItem("dokka-dark-mode")
    if (storage == null) {
        const osDarkSchemePreferred = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches
        if (osDarkSchemePreferred === true) {
            document.getElementsByTagName("html")[0].classList.add("theme-dark")
        }
    } else {
        const savedDarkMode = JSON.parse(storage)
        if(savedDarkMode === true) {
            document.getElementsByTagName("html")[0].classList.add("theme-dark")
        }
    }
    </script>
<script type="text/javascript" src="https://unpkg.com/kotlin-playground@1/dist/playground.min.js" async="async"></script>
<script type="text/javascript" src="../../../scripts/sourceset_dependencies.js" async="async"></script>
<link href="../../../styles/style.css" rel="Stylesheet">
<link href="../../../styles/main.css" rel="Stylesheet">
<link href="../../../styles/prism.css" rel="Stylesheet">
<link href="../../../styles/logo-styles.css" rel="Stylesheet">
<link href="../../../styles/font-jb-sans-auto.css" rel="Stylesheet">
<script type="text/javascript" src="../../../scripts/clipboard.js" async="async"></script>
<script type="text/javascript" src="../../../scripts/navigation-loader.js" async="async"></script>
<script type="text/javascript" src="../../../scripts/platform-content-handler.js" async="async"></script>
<script type="text/javascript" src="../../../scripts/main.js" defer="defer"></script>
<script type="text/javascript" src="../../../scripts/prism.js" async="async"></script>
<script type="text/javascript" src="../../../scripts/symbol-parameters-wrapper_deferred.js" defer="defer"></script>
</head>
<body>
    <div class="root">
<nav class="navigation" id="navigation-wrapper">
    <div class="navigation--inner">
        <div class="navigation-title">
            <button class="menu-toggle" id="menu-toggle" type="button">toggle menu</button>
            <div class="library-name">
                    <a class="library-name--link" href="../../../index.html">
                            Konsist 0.17.0
                    </a>
            </div>
            <div class="library-version">
            </div>
        </div>
        <div class="filter-section" id="filter-section">
                <button class="platform-tag platform-selector jvm-like" data-active="" data-filter=":lib:dokkaHtml/main">jvm</button>
        </div>
    </div>
    <div class="navigation-controls">
        <button class="navigation-controls--btn navigation-controls--theme" id="theme-toggle-button" type="button">switch theme</button>
        <div class="navigation-controls--btn navigation-controls--search" id="searchBar" role="button">search in API</div>
    </div>
</nav>
        <div id="container">
            <div class="sidebar" id="leftColumn">
                <div class="sidebar--inner" id="sideMenu"></div>
            </div>
            <div id="main">
<div class="main-content" data-page-type="member" id="content" pageIds="Konsist 0.17.0::com.lemonappdev.konsist.api.provider/KoSourceDeclarationProvider/sourceDeclaration/#/PointingToDeclaration//1440829338">
  <div class="breadcrumbs"><a href="../../../index.html">Konsist 0.17.0</a><span class="delimiter">/</span><a href="../index.html">com.lemonappdev.konsist.api.provider</a><span class="delimiter">/</span><a href="index.html">KoSourceDeclarationProvider</a><span class="delimiter">/</span><span class="current">sourceDeclaration</span></div>
  <div class="cover ">
    <h1 class="cover"><span>source</span><wbr></wbr><span><span>Declaration</span></span></h1>
  </div>
  <div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":lib:dokkaHtml/main"><div class="symbol monospace"><span class="token keyword">abstract </span><span class="token keyword">val </span><a href="source-declaration.html">sourceDeclaration</a><span class="token operator">: </span><a href="../-ko-declaration-cast-provider/index.html">KoDeclarationCastProvider</a><span class="token operator">?</span></div><p class="paragraph">Represents the source declaration associated with this type.</p><p class="paragraph">The <code class="lang-kotlin">sourceDeclaration</code> property provides access to the declaration of the type within the Kotlin codebase. It allows retrieving additional information about the declaration, such as its properties, functions, annotations, and other relevant metadata.</p><p class="paragraph">It points to an instance of <a href="../../com.lemonappdev.konsist.api.declaration/-ko-source-declaration/index.html">KoSourceDeclaration</a>, which serves as the base interface for various types:</p><ul><li><p class="paragraph"><code class="lang-kotlin">KoClassDeclaration</code> represents class</p></li><li><p class="paragraph"><code class="lang-kotlin">KoInterfaceDeclaration</code> represents interface</p></li><li><p class="paragraph"><code class="lang-kotlin">KoObjectDeclaration</code> represents object</p></li><li><p class="paragraph"><code class="lang-kotlin">KoTypeAliasDeclaration</code> represents type alias</p></li><li><p class="paragraph"><code class="lang-kotlin">KoImportAliasDeclaration</code> represents import alias</p></li><li><p class="paragraph"><code class="lang-kotlin">KoKotlinTypeDeclaration</code> represents Kotlin basic types and collections</p></li><li><p class="paragraph"><code class="lang-kotlin">KoFunctionDeclaration</code> represents function type</p></li><li><p class="paragraph"><code class="lang-kotlin">KoExternalDeclaration</code> represents declaration which is not defined in the project</p></li></ul><p class="paragraph">For import statements, <code class="lang-kotlin">sourceDeclaration</code> refers to the declaration being imported. Similarly, for an import alias, <code class="lang-kotlin">sourceDeclaration</code> also refers to the declaration being imported, allowing direct access to the original declaration.</p><p class="paragraph">Example usage:</p><div class="sample-container"><pre><code class="block lang-kotlin" theme="idea">scope<br>    .properties()<br>    .types<br>    .assertTrue { it.isInterface }</code></pre><span class="top-right-position"><span class="copy-icon"></span><div class="copy-popup-wrapper popup-to-left"><span class="copy-popup-icon"></span><span>Content copied to clipboard</span></div></span></div></div></div>
</div>
      <div class="footer">
        <span class="go-to-top-icon"><a href="#content" id="go-to-top-link"></a></span><span>© 2024 Copyright</span><span
                class="pull-right"><span>Generated by </span><a
                href="https://github.com/Kotlin/dokka"><span>dokka</span><span class="padded-icon"></span></a></span>
      </div>
            </div>
        </div>
    </div>
</body>
</html>
